package com.study.dao;

import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;

/**
 * @PackgeName: com.study.dao.impl
 * @ClassName: SupperDAO
 * @Author: 严志祥
 * Date: 2022-05-04 16:04
 * project name: web_project_medal
 * @Version:
 * @Description:
 */
public interface SupperDAO<E> {
        /**
         * 添加就一个实体
         * @param entity
         * @return 影响行数
         * @throws SQLException
         */
        int insert(E entity)throws SQLException;

        /**
         * 根据主键来更新其它的列的数据
         * @param entity
         * @return 影响行数
         * @throws SQLException
         */
        int updateById(E entity)throws SQLException;

        /**
         * 根据主键来删除一条记录
         * @param id
         * @return 影响行数
         * @throws SQLException
         */
        int deleteById(Serializable id)throws SQLException;

        /**
         * 根据主键查询一条记录
         * @param id
         * @return 实体对象
         * @throws SQLException
         */
        E selectById(Serializable id)throws SQLException;

        /**
         * 返回索引index开始的len条记录
         * @param index
         * @param len
         * @return
         * @throws SQLException
         */
        List<E> select(int index, int len)throws SQLException;

        /**
         * 统计所有记录数
         * @return
         * @throws SQLException
         */
        long count()throws SQLException;

    }
